public class RuntimeTest {
    public static void main(String[] args) {
//        try {
//            method(2);
//        } catch (RuntimeException e) {
//            e.printStackTrace(System.out);
//        }
//        method(2);

//        try{
//            upMethod();
//        } catch (ArrayIndexOutOfBoundsException e) {
//            System.out.println("Main方法中的捕获处理");
//            e.printStackTrace(System.out);
//        }
//        System.out.println();
        try {
            method(2);
        } catch (RuntimeException e) {
            e.printStackTrace(System.out);
        }
        System.out.println("执行剩下的代码");
    }

    public static void upMethod() /*throws RuntimeException*/ {

        try {
            method(2);
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("upMethod方法中的捕获处理");
            e.printStackTrace(System.out);
        }
        System.out.println("执行剩下的代码");
    }

    public static void method(int value) /*throws RuntimeException*/ {
//        if (value == 0) {
//            System.out.println("无异常发生");
//        } else {
//            System.out.println("发生异常");
//            int[] Array = new int[4];
//            Array[4] = 3;
//        }
        if (value == 0) {
            System.out.println("无异常发生");
        } else {
            System.out.println("发生异常");
            int[] Array = new int[4];
            Array[4] = 3;
        }
    }
}
